#include "Socket.h"
#include "HiloSimulador.h"
#include <iostream>
#include <fstream>
#include <stdlib.h>

#define ERROR_ARG 1
#define ERROR_SOCKET 3

void parsearArg(char * argumento, std::string& ip,  int * puerto);

int main(int argc, char *argv[]){
		
	std::string  direccionIp;
	int puerto;
	
	
	/*Toma el ip y el puerto*/
	if(argv[1]!=NULL)
			parsearArg(argv[1],direccionIp,&puerto);
	else
			return ERROR_ARG;
		 	
	
	/*Crea el socket*/
	Socket socket( direccionIp,puerto);
	
	/*Chequea que este bien inicializado*/
	if(!socket){
		return ERROR_SOCKET;
	}	
 	
	
	/*Crea el hilo del simulador */
	int comando=1;
	HiloSimulador hSim(&socket,&comando);
	
	/*Inicia el hilo de ejecucion*/
	hSim.run();
	

	while(comando!=0){
		
		std::cin>>comando;
		std::cout<<comando<<std::endl;
	
	}
	
	/*espera a que termine*/
	hSim.join();
	return 0;
}


void parsearArg(char * argumento, std::string& ip,  int * puerto){

	std::string aux(argumento); /*copia argumento 1*/
	std::string aux2;
	int pos=0;
	pos= aux.find(":",0);
	ip.assign(aux,0,pos); /*asigna direccion ip*/
	aux2.assign(aux,pos+1,aux.size());
	*puerto=atoi(aux2.c_str());/*asigna puerto*/
}
